1. Technical Field
The present invention relates in general to data processing systems and in particular to data processing systems utilizing a Small Computer System Interface ("SCSI") storage interface. Still more particularly, the present invention relates to increasing addressability of a SCSI interface.
2. Description of the Related Art
A Small Computer System Interface comprises a generic interface architecture with a standard signaling protocol. The SCSI interface operates as a low cost network for connecting such devices as hard disk drives, diskette drives, optical disk drives, CD ROM drives, tape drives, etc., to a host computer or network.
FIG. 3 depicts a high level logic flow diagram of the prior art communication ("I/O") process that takes place utilizing a SCSI interface. The I/O process occurs between two devices in the data processing system, an initiator device and a target device. The initiator device, usually the host computer, is responsible for initiating the I/O process to a target device through the SCSI controller and the SCSI bus. The target device, a peripheral such as a disk drive, is responsible for accomplishing the I/O process. Logical Units are additional peripheral devices that are addressable through the SCSI controller.
The process begins with step 300, which depicts the SCSI bus in a Bus Free (no bus activity) state. The process proceeds to step 302, which illustrates arbitration for the bus. If the winner of arbitration is an initiator device, the process then passes to step 304, which depicts selection of a target device by the initiator device. The process then passes to step 306, which illustrates an I/O process begun by the initiator device. The process continues to step 308, which depicts determination by the target device whether to disconnect and return to Bus Free state in step 300, or continue operation by proceeding to step 312 which illustrates the determination of whether there is data to be processed.
Returning to step 302; if a target device wins arbitration, the process instead proceeds to step 310, which depicts the re-selection of the initiator device by the target device to continue an I/O process that was previously begun. The process then passes to step 312, which illustrates the determination of whether there is data to be processed. If no data is to be processed, the process proceeds to step 318 which depicts presentation of ending status, by the target device, to the initiator device, indicating success or failure of the I/O operation. The process then terminates by passing to step 300, which illustrates return of the bus to a Bus Free state.
Returning to step 312; if there is data to be transferred, the process instead proceeds to step 314, which illustrates a transfer of data. The process continues to step 316, which depicts a determination, by the target device, of whether to terminate the I/O process or continue. If the I/O process is to be terminated, the process then returns to step 300, and the bus is returned to the Bus Free state. If the I/O process is not complete, the process proceeds instead to step 318, which illustrates the presentation of ending status, by the target device, to the initiator device, indicating success or failure of the I/O operation. The process then terminates by passing to step 300, which illustrates return of the bus to a Bus Free state.
As more and more data is moved from fault tolerant mainframe systems to lower cost networks, the need for redundant systems and data sharing capabilities on these smaller, low cost networks has increased. As SCSI interfaces, operating as low cost networks, become more central to the open systems computing environment, it becomes increasingly desirable to have a method to conveniently switch devices in and out of a configuration for data sharing, as well as for system availability reasons.
Manufacturing testing often has a need to switch SCSI devices in and out of a configuration. This is usually accomplished utilizing SCSI static switches, which are expensive, complex and failure prone. The static switch requires multiple driver/receiver assemblies and multiple relays to switch a device in and out of a configuration.
A typical approach to the SCSI switching problem is to utilize SCSI driver/receiver chips on the SCSI switch (initiator device) and the target devices, connected together via relays or digital multiplexors utilizing a SCSI bus. The signal path through the SCSI switch comprises two SCSI connectors, two driver/receivers, and a relay set to connect the driver/receivers and for logic that is necessary to operate the switching system.
Digital multiplexors require buffering, since an entire command must be accepted before it is re-transmitted to another port. If the control unit in the SCSI switch is digital, latency ensues because data and commands are buffered and delivered to the initiator device port in blocks. The initiator device port on the SCSI switch accepts the entire command and arbitrates with the target device port to send the command, via the SCSI bus, to the target device port.
Error recovery is complex in a buffered multiplexor. Once the command is accepted by an initiator device port, the SCSI switch must ensure that the command completes on the target device port and all error handling, reporting, fault isolation and data protection must be handled by the SCSI switch. In essence, the switch acts as an initiator device to the target devices and a target device to the initiator device. The SCSI switch must contain logic to handle both responsibilities in all possible perturbations. This is an extremely complex task which is costly to implement.
The required buffers, complicated logic, SCSI driver/receivers and processors required for use with a digital multiplexor combine to make the connection between the initiator device and the target device more error prone. The multiple connections alone provide error producing opportunities.
It would be desirable therefore, to provide a method and apparatus that would be relatively inexpensive, provide noise free transmission, require fewer components and have a less complicated configuration that would provide a less expensive and more reliable SCSI switching system.